Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.10.2019, 15:48
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

К ключ массива date передать массив значений Id
jQuery(document).ready(function() {
   jQuery(".submit").on("click", function (event) {
        event.preventDefault();

  if (jQuery(".block-border").hasClass("active")) {
        var name = jQuery('.form-name').val();
        var last_name = jQuery('.form-last_name').val();
        var form_phone = jQuery('.form-phone').val();
        var form_country = jQuery('.form-country').val();
        var form_city = jQuery('.form-city').val();
        var form_street = jQuery('.form-street').val();
        var form_message = jQuery('.form-message').val();

        var form_num = jQuery('.form-num').val();     
        var form_weight1 = jQuery('.form-weight1').val();
        var form_weight2 = jQuery('.form-weight2').val();
        var form_num2 = jQuery('.form-num2').val();
        var form_weight3 = jQuery('.form-weight3').val();
        var form_weight4 = jQuery('.form-weight4').val();



        jQuery.ajax({
            context: document.body,
            url: "/wp-admin/admin-ajax.php",
            method: 'post',

            data: {
                action: 'ajax_order',
                name: name,
                last_name: last_name,
                phone: form_phone,
                country: form_country,
                city: form_city,
                street: form_street,
                message: form_message,

                form_num: form_num,
                form_weight1: form_weight1,
                form_weight2: form_weight2,
                form_num2: form_num2,
                form_weight3: form_weight3,
                form_weight4: form_weight4,

                post_id: jQuery('.block-border.active').find('.hidd').attr('id'),
                 
                meta_val: 1
            },
            function(date) {
          jQuery('.block-border').hasClass("active").find('.hidd').text(date); 
        },
            success: function (response) {
                jQuery("#sendform").html('<p class="thank" style="text-align: center;margin-bottom: 0px;">Заказ забронирован!<p>');
            }
        });
};
    });
   });

Подскажите, пожалуйста, как в post_id: jQuery('.block-border.active').find('.hidd').attr('id') передать все полученные id? А не только первый по которому кликнули
Ответить с цитированием
  #2 (permalink)  
Старый 11.10.2019, 15:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Julia1991
name = jQuery('.form-name').val();
и ....
А почему не $(this).serialise() или .serialiseArray()? ".submit" - это форма?

Последний раз редактировалось laimas, 11.10.2019 в 15:58.
Ответить с цитированием
  #3 (permalink)  
Старый 11.10.2019, 16:00
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Подскажите, как правильно написать для
post_id: jQuery('.block-border.active').find('.hidd').attr('id')
чтоб получить все Id
Ответить с цитированием
  #4 (permalink)  
Старый 11.10.2019, 16:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Julia1991
Подскажите, как правильно написать для
Что дописать и чего вы вообще хотите передать на сервер? Если .submit это кнопка отправления формы, то почему обрабатываете ее щелчок вместо того чтобы обрабатывать событие отправления формы? Вам же ее поля нужны, и для их получения есть методы, а вместо этого вы через посредников дублируете имена полей и по отдельности получаете каждое поле.

post_id должен передать значения нескольких id?
Ответить с цитированием
  #5 (permalink)  
Старый 11.10.2019, 16:10
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

post_id должен передать значения всех Id по которым кликнули мышкой
Ответить с цитированием
  #6 (permalink)  
Старый 11.10.2019, 16:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Julia1991
post_id должен передать значения всех Id по которым кликнули мышкой
А что такое то, id которых надо получить и по которым щелкали? Ну например, пусть это будут несколько кнопок, по которым щелкали, но если отправляется форма, то как может связаны эти события, щелчки и отправление, это ведь разные события? Или это элементы отмеченные, которым установлен класс "hidd"? Если да, то их можно передать под одним ключом как JSON или строкой. Так и нужно?
Ответить с цитированием
  #7 (permalink)  
Старый 11.10.2019, 16:24
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

http://snails.2w-shop.com/preorder-snails это все товары (вывела их с помощью записей на вордпресс), при клике на .block-border присваивается класс .active и да я должна передать id тега .hidd блока по которому я кликнула мышкой, так как я могу выбрать несколько элементов, то мне нужно вытянуть все их id чтоб передать на сервер и на сервере я обрабатываю мета поля по переданному id и передаю значение "1" в .hidd обратно
<?php
function total_form(){
 $name = $_REQUEST['name'];
 $last_name = $_REQUEST['last_name'];
 $phone = $_REQUEST['phone'];
 $country = $_REQUEST['country'];
 $city = $_REQUEST['city'];
 $street = $_REQUEST['street'];
 $message = $_REQUEST['message'];

 $form_num = $_REQUEST['form_num'];
 $form_weight1 = $_REQUEST['form_weight1'];
 $form_weight2 = $_REQUEST['form_weight2'];
 $form_num2 = $_REQUEST['form_num2'];
 $form_weight3 = $_REQUEST['form_weight3'];
 $form_weight4 = $_REQUEST['form_weight4'];

 $metaVal = $_POST['meta_val'];
 $post_id = $_POST['post_id'];
 $action = 'post_id_' . $post_id;
 
    update_post_meta($post_id, 'pole_booked_product', $metaVal, $value);

    $response = '';
    $thm  = 'Заказ звонка';
    $thm  = "=?utf-8?b?". base64_encode($thm) ."?=";
    $msg = "Имя: ".$name."<br/>
        Фамилия: ".$last_name ."<br/>
        Телефон: ".$phone ."<br/>
        Страна: ".$country ."<br/>
        Город: ".$city ."<br/>
        Улица: ".$street ."<br/>
        Сообщение: ".$message ."<br/>

        № HELIX ASPERSA MULLER: ".$form_num ."<br/>
        1 класс HELIX ASPERSA MULLER: ".$form_weight1 ."<br/>
        2 класс HELIX ASPERSA MULLER: ".$form_weight2 ."<br/>
        № HELIX ASPERSA MAXIMA: ".$form_num2 ."<br/>
        1 класс HELIX ASPERSA MAXIMA: ".$form_weight3 ."<br/>
        2 класс HELIX ASPERSA MAXIMA: ".$form_weight4 ."<br/>
        ";
    $mail_to = 'juliaradionova1991@gmail.com';
    $headers = "Content-Type: text/html; charset=utf-8\n";
    //$headers .= 'From: test@gmail.com' . "\r\n";

    if(mail($mail_to, $thm, $msg, $headers)){
        $response = 'Сообщение отправлено';
    }else
        $response = 'Ошибка при отправке';

    if ( defined( 'DOING_AJAX' ) && DOING_AJAX ){
        echo $response;
        wp_die();
    }
}

add_action('wp_ajax_nopriv_ajax_order', 'total_form' );
add_action('wp_ajax_ajax_order', 'total_form' );
?>
Ответить с цитированием
  #8 (permalink)  
Старый 11.10.2019, 16:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если я правильно понял, то так:

var ids = JSON.stringify(jQuery.map(jQuery('.block-border.active'), function(a) {
    return jQuery(a).find('.hidd').attr('id')
}));
ids - это массив как json. Соответственно на сервере:
$post_id = json_decode($_POST['post_id'], 1); //массив id

Если же на сервере их надо получить как к примеру строку где они через запятую, то достаточно на клиенте:

var ids = jQuery.map(jQuery('.block-border.active'), function(a) {
    return jQuery(a).find('.hidd').attr('id')
}).join(', ');

Последний раз редактировалось laimas, 11.10.2019 в 16:37.
Ответить с цитированием
  #9 (permalink)  
Старый 11.10.2019, 16:52
Профессор
Отправить личное сообщение для Julia1991 Посмотреть профиль Найти все сообщения от Julia1991
 
Регистрация: 13.08.2017
Сообщений: 167

Не работает(
<?php
function total_form(){
 $name = $_REQUEST['name'];
 $last_name = $_REQUEST['last_name'];
 $phone = $_REQUEST['phone'];
 $country = $_REQUEST['country'];
 $city = $_REQUEST['city'];
 $street = $_REQUEST['street'];
 $message = $_REQUEST['message'];

 $form_num = $_REQUEST['form_num'];
 $form_weight1 = $_REQUEST['form_weight1'];
 $form_weight2 = $_REQUEST['form_weight2'];
 $form_num2 = $_REQUEST['form_num2'];
 $form_weight3 = $_REQUEST['form_weight3'];
 $form_weight4 = $_REQUEST['form_weight4'];

 $metaVal = $_POST['meta_val'];
 //$post_id = $_POST['post_id'];
 $post_id = json_decode($_POST['post_id'], 1);
 $action = 'post_id_' . $post_id;
 

$key1_values = get_post_meta('pole_booked_product', $post_id);
foreach ($key1_values as $value){
    update_post_meta($post_id, 'pole_booked_product', $metaVal);
    //echo get_post_meta($post_id, 'pole_booked_product', true);
};

    //update_post_meta($post_id, 'pole_booked_product', $metaVal);
    //echo get_post_meta($post_id, 'pole_booked_product', true);
 
    $response = '';
    $thm  = 'Заказ звонка';
    $thm  = "=?utf-8?b?". base64_encode($thm) ."?=";
    $msg = "Имя: ".$name."<br/>
        Фамилия: ".$last_name ."<br/>
        Телефон: ".$phone ."<br/>
        Страна: ".$country ."<br/>
        Город: ".$city ."<br/>
        Улица: ".$street ."<br/>
        Сообщение: ".$message ."<br/>

        № HELIX ASPERSA MULLER: ".$form_num ."<br/>
        1 класс HELIX ASPERSA MULLER: ".$form_weight1 ."<br/>
        2 класс HELIX ASPERSA MULLER: ".$form_weight2 ."<br/>
        № HELIX ASPERSA MAXIMA: ".$form_num2 ."<br/>
        1 класс HELIX ASPERSA MAXIMA: ".$form_weight3 ."<br/>
        2 класс HELIX ASPERSA MAXIMA: ".$form_weight4 ."<br/>
        ";
    $mail_to = 'juliaradionova1991@gmail.com';
    $headers = "Content-Type: text/html; charset=utf-8\n";
    //$headers .= 'From: test@gmail.com' . "\r\n";

// Отправляем почтовое сообщение

    if(mail($mail_to, $thm, $msg, $headers)){
        $response = 'Сообщение отправлено';
    }else
        $response = 'Ошибка при отправке';

// Сообщение о результате отправки почты

    if ( defined( 'DOING_AJAX' ) && DOING_AJAX ){
        echo $response;
        wp_die();
    }
}

add_action('wp_ajax_nopriv_ajax_order', 'total_form' );
add_action('wp_ajax_ajax_order', 'total_form' ); ?>


jQuery(document).ready(function() {
   jQuery(".submit").on("click", function (event) {
        event.preventDefault();

  if (jQuery(".block-border").hasClass("active")) {
        var name = jQuery('.form-name').val();
        var last_name = jQuery('.form-last_name').val();
        var form_phone = jQuery('.form-phone').val();
        var form_country = jQuery('.form-country').val();
        var form_city = jQuery('.form-city').val();
        var form_street = jQuery('.form-street').val();
        var form_message = jQuery('.form-message').val();

        var form_num = jQuery('.form-num').val();     
        var form_weight1 = jQuery('.form-weight1').val();
        var form_weight2 = jQuery('.form-weight2').val();
        var form_num2 = jQuery('.form-num2').val();
        var form_weight3 = jQuery('.form-weight3').val();
        var form_weight4 = jQuery('.form-weight4').val();

var ids = JSON.stringify(jQuery.map(jQuery('this'), function(a) {
    return jQuery(a).find('.hidd').attr('id')
}));
        jQuery.ajax({
            context: document.body,
            url: "/wp-admin/admin-ajax.php",
            method: 'post',

            data: {
                action: 'ajax_order',
                name: name,
                last_name: last_name,
                phone: form_phone,
                country: form_country,
                city: form_city,
                street: form_street,
                message: form_message,

                form_num: form_num,
                form_weight1: form_weight1,
                form_weight2: form_weight2,
                form_num2: form_num2,
                form_weight3: form_weight3,
                form_weight4: form_weight4,

                post_id: ids,
                 
                meta_val: 1
            },
            function(date) {
          jQuery('.block-border').hasClass("active").find('.hidd').text(date); 
        },
            success: function (response) {
                jQuery("#sendform").html('<p class="thank" style="text-align: center;margin-bottom: 0px;">Заказ забронирован!<p>');
            }
        });
};
    });
   });
Ответить с цитированием
  #10 (permalink)  
Старый 11.10.2019, 16:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Погодите, я ведь даже не знаю чего вам в конечном итоге нужно, а вы не даете пояснений. Но думайте что вы делаете, разве такое возможно - $action = 'post_id_' . $post_id;, если $post_id, это массив? Конечно нет, и если вам нужно в итоге так:
post_id_12, post_id_22, ... это к примеру, то на сервере нужно:
$action = 'post_id_' . implode(', post_id_', json_decode($_POST['post_id'], 1));

Либо сразу на клиенте получить такую строку:
var ids = 'post_id_' + jQuery.map(jQuery('.block-border.active'), function(a) {
    return jQuery(a).find('.hidd').attr('id')
}).join(', post_id_');

Последний раз редактировалось laimas, 11.10.2019 в 17:02.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать массив из PHP в JavaScript Ajax Mayder Общие вопросы Javascript 4 01.12.2016 18:50
Передать элементы php массива в js переменную zav Элементы интерфейса 3 22.11.2016 14:35
Как передать массива из объекта php в js suxxoi Элементы интерфейса 4 11.09.2016 17:06
Передать массив в JS-функцию koeshiro Общие вопросы Javascript 3 13.09.2013 15:16
Передать несколько значений из JS на сервер, методом POST балерун Общие вопросы Javascript 1 02.03.2010 14:36